A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the xerographic reproduction by anyone of the patent document or the patent disclosure in exactly the form it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates to the field of data navigation. More specifically, one embodiment of the invention provides an application developer with an improved method and apparatus to define relationships between data objects.
The typical data navigator used to navigate through complex databases requires the application developer to know ahead of time the relations between the objects in the database. Most applications that allow navigation use icons, buttons or highlighted words (anchors) to point to related objects. An anchor represents a known relationship between objects, usually a relationship that is defined in database schema in the form known as a xe2x80x9cforeign keyxe2x80x9d. Relations may also be coded in the application code itself. These relations require the developer of the applications to specifically define the relationship and attach this specific definition of the relationship to the anchor. This poses a number of problems in the creation process, which is long and tedious, but also poses problems in the maintenance of these applications. If any of the relationships has been changed, the developer most likely will need to change the application and its layout of its displays in order to represent of these changes.
The system of Hyper-relational data navigation described in U.S. Pat. No. 5,848,424, owned by the assignee of the present application, which is incorporated herein by reference for all purposes, shows a data navigator for use in a HyperRelational navigation system (xe2x80x9cHRNSxe2x80x9d) that improves on the typical xe2x80x9chypertextxe2x80x9d metaphor of navigation on the World Wide Web (xe2x80x9cWWWxe2x80x9d). In one aspect of that interface, a browser displays hypertext pages and indicates draggable elements on the page being viewed. The browser also displays drop targets and allows the user to drag a draggable element onto a drop target. The browser and/or server (to which the browser is connected) then perform an action, which is a function of both the dragged element and the drop target. Usually this action involves getting data from a database, processing that data, and displaying the result. The details of the actionxe2x80x94i.e., what data to get, what processing to doxe2x80x94are determined by the user""s choice of dragged object and drop target. The action taken by the HRNS in response to a user request is therefore dependent on a definition of relationships between the objects. These relationships must typically be prepared in advance in order for the HRDN to work well.
One embodiment of the present invention provides a mechanism to infer a set of relationships between objects in a data model. The relationships between the objects can be used to refer from one object to another, and in particular, can be used in a HyperRelational navigation system (xe2x80x9cHRNSxe2x80x9d), to navigate between objects.
An auto completion process preferably starts with some pre-defined relationships. The pre-defined relationships are referred to herein as xe2x80x9cbasicxe2x80x9d relationships. This set can be derived from the object model automatically or can be defined manually by the user.
The autocompletion process attempts to automatically complete all possible relationships between any object and any other object in the object model. The required result is the creation of a relationship between any two objects that follows the most logical path between those two objects. In cases where no such path exists, no relationship between the two objects will be created.
If the graph of basic relationships is a xe2x80x9cconnected graphxe2x80x9d (then there are no two or more subsets of relationships that have no relationship defined between an object in one subset to an object in the other subset) with a connected graph, an unrestricted autocompletion process will find a relationship for any two objects.
After the autocompletion process completes, the output of the process, the set of relationships between the objects, together with the basic set of relationships forms the xe2x80x9cfullxe2x80x9d set of relationships between the objects in the object model. This full set of relationships can be used by other processes or applications, and particularly by a HRNS. In an HRNS, each instance of data from an object can be dragged and then dropped on any object if a relationship exists between the two objects. After the drop, data from the second object that relates, according to a relationship from the full set, to the dragged data from the first object will be obtained and displayed.